package com.ww.basic.fun.closure

/**
 * 闭包作为返回值
 */
object Test03 {
  def main(args: Array[String]): Unit = {
    def makeAdder(adder: Int): Int => Int = {
      (x: Int) => x + adder
    }

    // makeAdder函数返回一个闭包，不同的闭包实例捕获了不同的adder值
    val addFive = makeAdder(5)
    val addTen = makeAdder(10)

    println(addFive(3)) // 输出8
    println(addTen(3)) // 输出13
  }
}
